The present invention relates to computers, and more particularly to resource sharing and device identification in computer systems.
Computer systems use various techniques to control access to shared resources. Access to a shared bus is sometimes controlled by an arbitrator circuit. The arbitrator receives a request signal from each unit wishing to access the bus. The arbitrator grants access to one of the units.
Systems using an arbitrator include a separate conductive line for a request signal from each unit. To reduce the number of conductive lines, some systems do not use an arbitrator. Instead, a single conductive line is connected to every unit that may access the bus. The connection is "wired-OR". This means that the conductive line is connected to a first voltage, and any unit can drive the line to a second voltage. In the explanation that immediately follows, the first voltage is a high voltage, and the second voltage is a low voltage; the conductive line is connected to the high voltage through a pull-up resistor.
Each unit is assigned a unique priority number. A lower priority number indicates a higher priority. Arbitration takes as many clock cycles as there are bits in the priority number. In the first clock cycle, each unit requesting bus access examines the most significant bit of its priority number. If this bit is 0, the unit pulls the conductive line low. If the bit is 1, the unit does not drive the conductive line. At the end of the clock cycle, all the units sample the voltage on the conductive line. If the conductive line is low, all the units whose most significant bit is 1 lose arbitration and do not participate in the remaining clock cycles. If the conductive line is high, all the units wishing to access the bus participate in the second clock cycle.
In the second clock cycle, each unit still participating in the arbitration examines the second most significant bit of its priority number. If this bit is 0, the unit does not drive the conductive line. At the end of the cycle, all the units sample the voltage on the conductive line. Operation proceeds as in the previous cycle. On the last clock cycle, which corresponds to the least significant bit of the priority number, the arbitration winner is determined.
This technique requires only one conductive line, but arbitration takes longer. It is desirable to provide an arbitration technique that requires fewer conductive lines than in an arbitrator system but is faster than the single-conductive-line technique.
In the single-conductive-line technique, units with lower priorities have less opportunity to access the bus. There is a need for an arbitration technique that would provide equal bus access opportunities to units connected to the bus.
It is also desirable to reduce arbitration delays even in systems using an arbitrator or a single conductive line.
In many systems, different units ("devices") are identified by their device number. For some units, the device numbers are not "burned in" by the unit manufacturer, but rather are set when the units are mounted on a circuit board. Each unit has a number of pins reserved for the device number. When the unit is mounted, these pins are tied to high or low voltages according to the device number; each pin defines one bit of the device number. It is desirable to reduce the number of pins reserved for device numbers.